﻿using Abp.Application.Services;
using Abp.Application.Services.Dto;
using MyCompanyName.AbpZeroTemplate.Card.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyCompanyName.AbpZeroTemplate.Card
{
    public interface ICardService: IApplicationService
    {
        #region 卡片
        /// <summary>
        /// 获得卡片列表
        /// </summary>
        /// <returns></returns>
        PagedResultDto<CardDto> GetCardDtoList(string CardName, int PageSize, int PageNumber);
        /// <summary>
        /// 根据卡片主键id获得代理商信息
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        CardDto GetCardById(int Id);
        /// <summary>
        /// 根据卡号获取信息
        /// </summary>
        /// <param name="Account"></param>
        /// <returns></returns>
        CardDto GetAgentByCard(string Card);
        /// <summary>
        /// 创建卡片
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        int CreateCard(CreateCardInput input);

        /// <summary>
        /// 更新卡片
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        bool UpdateCard(UpdateCardInput input);
        #endregion

        #region 划卡记录
        /// <summary>
        /// 获得划卡记录列表
        /// </summary>
        /// <returns></returns>
        PagedResultDto<TransferCardLogDto> GetTransferCardLogDtoList(string TransferCardLogName, int PageSize, int PageNumber);

        /// <summary>
        /// 创建划卡记录,更新卡片信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        string CreateTransferCard(CreateTransferCardLogInput input);
        #endregion

        #region 充值记录
        /// <summary>
        /// 获得充值记录列表
        /// </summary>
        /// <returns></returns>
        PagedResultDto<CardRechargeLogDto> GetCardRechargeLogDtoList(string CardRechargeLogName, int PageSize, int PageNumber);

        /// <summary>
        /// 创建充值记录,更新卡片信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        string CreateCardRecharge(CreateCardRechargeLogInput input);
        #endregion
    }
}
